// 1.导入mysql模块
const mysql = require('mysql2')

// 2.创建数据库连接对象
const db  = mysql.createPool({
  host: '127.0.0.1', // 数据库的IP地址
  port: 3306, // 数据库端口号
  user: 'root', // 登录数据库用户名
  password: '123456', // 登录数据库密码
  database: 'my_db_01' // 指定要操作的数据库
})

// 3.测试链接数据库是否成功
// db.query('select 1', (err, result) => {
//   if (err) return console.log(err)
//   console.log(result)
// })

// 查询users表中所有的数据, 返回的是数组
/* db.query('select * from users', (err, result) => {
  if (err) return console.log(err.message)
  console.log(result)
}) */

// 插入数据
/* const user = { name: 'spider-man', password: '123456' }
const sqlStr = 'insert into users (username, password) values (?, ?)'
db.query(sqlStr, [user.name, user.password], (err, result) => {
  if (err) return console.log(err.message)
  if(result.affectedRows === 1) {
    console.log('插入数据成功')
  }
}) */

// 插入数据的第二种方法
/* const user = { username: 'spider-man2', password: '123456' }
const sqlStr = 'insert into users set ?'
db.query(sqlStr, user, (err, result) => {
  if(err)  return console.log(err.message)
  if(result.affectedRows === 1) {
    console.log('插入数据成功')
  }
}) */

// 更新数据
/* const user = { id: 3, username: 'spider-man3', password: '123456' }
const sqlStr = 'update users set username=?, password=? where id=?'
db.query(sqlStr, [user.username, user.password, user.id], (err, result) => {
  if(err)  return console.log(err.message)
  if(result.affectedRows === 1) {
    console.log('更新数据成功')
  }
}) */

// 更新数据的第二种方法
/* const user = { id: 5, username: 'spider-man4', password: '123456' }
const sqlStr = 'update users set ? where id=?'
db.query(sqlStr, [user, user.id], (err, result) => {
  if(err)  return console.log(err.message)
  if(result.affectedRows === 1) {
    console.log('更新数据成功')
  }
}) */

// 删除数据
/* const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 5, (err, result) => {
  if(err)  return console.log(err.message)
  if(result.affectedRows === 1) {
    console.log('删除数据成功')
  }
}) */

// 标记删除， 实际开发中delete是不建议使用的，因为删除数据后，数据无法恢复，因而采用标记删除将某个字段设置为1，表示删除
const sqlStr = 'update users set status=1 where id=?'
db.query(sqlStr, 6, (err, result) => {
  if(err)  return console.log(err.message)
    if(result.affectedRows === 1) {
      console.log('删除数据成功')
    }
})
